package com.nbcio.cd.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.nbcio.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 云网盘分享对象 cd_share
 *
 * @author nbacheng
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cd_share")
public class CdShare extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 分享ID
     */
    @TableId(value = "share_id")
    private Long shareId;

    /**
     * 分享码
     */
    private String shareCode;

    /**
     * 分享类型：file文件，folder文件夹
     */
    private String shareType;

    /**
     * 资源ID（文件ID或文件夹ID）
     */
    private Long resourceId;

    /**
     * 分享名称
     */
    private String shareName;

    /**
     * 分享密码
     */
    private String sharePassword;

    /**
     * 访问次数
     */
    private Integer accessCount;

    /**
     * 下载次数
     */
    private Integer downloadCount;

    /**
     * 过期时间
     */
    private java.util.Date expireTime;

    /**
     * 是否永久有效
     */
    private Boolean isPermanent;

    /**
     * 访问级别：public公开，password密码，restricted受限
     */
    private String accessLevel;

    /**
     * 允许下载
     */
    private Boolean allowDownload;

    /**
     * 允许预览
     */
    private Boolean allowPreview;

    /**
     * 状态（0正常 1停用）
     */
    private String status;

    /**
     * 创建部门
     */
    private Long createDept;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;
}
